/*
* Name: TaskHandle.h
* Created by 勇 on 2022/11/17.
* Description: 主要程序
*
*/

#ifndef ARDUINO_ESP8266_TASKHANDLE_H
#define ARDUINO_ESP8266_TASKHANDLE_H

#include "touchHandle/TouchHandle.h"

/**
 * 是否自动连接wifi
 */
extern boolean isAutoWiFi;
/**
 * mqtt客户端
 */
extern PubSubClient mqttClient;

/**
 * 初始数据
 */
void initConfigType();
/**
 * 读取EEPROM配置
 */
void readConfigType();

/**
 * 写入EEPROM配置
 */
void writeConfigType();

/**
 * 连接wifi
 */
void connectWiFi();

/**
 * 配网等待
 */
void smartConfigWait();

/**
 * 连接mqtt
 */
void connectMQTT();

/**
 * mqtt回调
 * @param topic
 * @param payload
 * @param length
 */
void mqttCallback(char* topic, byte* payload,  int length);

/**
 * 发送数据到mqtt
 */
void publishMQTT();


/**
 * 更新固件
 */
void updateFirmware(const String& updateUrl);


/**
 * 初始化AP模式
 */
void initSoftAP();


/**
 *  服务处理
 */
void serverLoop();

/**
 * 读取的数据处理
 * @param text
 */
boolean readStringHandle(String text);

/**
 * 编辑 修改和添加设备的时候发送初始数据给APP
 */
String sendDataToAppHandle();
#endif //ARDUINO_ESP8266_TASKHANDLE_H
